UniCommon機能紹介 - Component
UniCommonの中のComponentモジュールにある便利なクラスを紹介します
Componentは主にMonoBehaviourに関連するクラスです
AManagedBehaviour
MonoBehaviourを継承した抽象クラスです
特徴としては、このクラスを継承すると、MonoBehaviourの代表的なイベントメソッドである以下のメソッドが実装できなくなります
Awake
Start
Update
LateUpdate
OnDestroy
その代わり、以下のvirtualメソッドを継承することで同様にUnityのイベントに反応できるようになります
OnAwake
OnStart
OnUpdate
OnLateUpdate
PreDestroy
これらは実装をoptionalにするためにvirtualに設定されていますが、親クラスでは何もしていないのでbase呼び出しをしてもしなくても問題ありません。
その代わり、上記のUnityデフォルトのイベントメソッドで共通の処理を行うため、それらを継承できなくしています
AManagedBehaviourではコンポーネントごとのいくつかの便利なメタデータを自動的に計測します
elapsedTime
onStart以降、このコンポーネントがゲーム中でupdateされたローカル合計時間が分かります(単位:秒)
actualElapsedTime
elapsedTimeとにていますが、これはTimesで管理されている自身のローカル時間に影響を受けません
Time.timeScaleで全体の時間スケールが変化している場合は、その影響を受けます
deltaPosition
前回のlateUpdateと現在のtransform.positionのデルタ位置を返します
IsReady()
boolを返すvirtualメソッドです
これはOnStart, OnUpdate, OnLateUpdateの実行前に呼ばれ、falseが返された場合、そのメソッドは呼ばれません
コンポーネントの状態によって更新を行いたくない場合に便利です
AManagedBehaviourInternal
code:cs
public abstract class AManagedBehaviourInternal : MonoBehaviour {
protected abstract void Awake();
protected abstract void Start();
protected abstract void Update();
protected abstract void LateUpdate();
protected abstract void OnDestroy();
}
Unityのイベントメソッドを自分で管理したい場合の抽象クラスです。
AManagedBehaviourを継承したくない方はこちらを使うと良いと思います
ACommonBehaviour
AManagedBehaviourを継承した抽象クラスです。
Unityのイベントメソッドに依存しない便利なメソッドが実装されています
Logger
posX, posY, posZ
transform.positionのシンタックスシュガーです
code:cs
this.posX = 0;
this.posY = this.posZ + 1;
このように位置のx,y,zの値をget/setできます
この他にも、lscale(X|Y|Z), rot(X|Y|Z)があります